//package com.yunbao.video.activity;
//
//import android.animation.ValueAnimator;
//import android.app.Dialog;
//import android.content.Intent;
//import android.graphics.Bitmap;
//import android.graphics.drawable.Drawable;
//import android.os.Bundle;
//import android.support.v4.content.ContextCompat;
//import android.view.View;
//import android.view.ViewGroup;
//import android.view.WindowManager;
//import android.widget.TextView;
//
//import com.tencent.rtmp.TXLiveConstants;
//import com.tencent.rtmp.ui.TXCloudVideoView;
//import com.tencent.ugc.TXRecordCommon;
//import com.tencent.ugc.TXUGCPartsManager;
//import com.tencent.ugc.TXUGCRecord;
//import com.yunbao.beauty.bean.FilterBean;
//import com.yunbao.beauty.interfaces.BeautyViewHolder;
//import com.yunbao.beauty.interfaces.DefaultBeautyEffectListener;
//import com.yunbao.beauty.interfaces.TiBeautyEffectListener;
//import com.yunbao.beauty.views.DefaultBeautyViewHolder;
//import com.yunbao.beauty.views.TiBeautyViewHolder;
//import com.yunbao.common.CommonAppConfig;
//import com.yunbao.common.CommonAppContext;
//import com.yunbao.common.Constants;
//import com.yunbao.common.activity.AbsActivity;
//import com.yunbao.common.bean.ConfigBean;
//import com.yunbao.common.custom.DrawableRadioButton2;
//import com.yunbao.common.utils.BitmapUtil;
//import com.yunbao.common.utils.DialogUitl;
//import com.yunbao.common.utils.L;
//import com.yunbao.common.utils.StringUtil;
//import com.yunbao.common.utils.ToastUtil;
//import com.yunbao.common.utils.WordUtil;
//import com.yunbao.video.R;
//import com.yunbao.video.bean.MusicBean;
//import com.yunbao.video.custom.RecordProgressView;
//import com.yunbao.video.custom.VideoRecordBtnView;
//import com.yunbao.video.views.VideoMusicViewHolder;
//
//import java.util.ArrayList;
//import java.util.List;
//
//import cn.tillusory.sdk.TiSDKManager;
//import cn.tillusory.sdk.TiSDKManagerBuilder;
//import cn.tillusory.sdk.bean.TiDistortionEnum;
//import cn.tillusory.sdk.bean.TiFilterEnum;
//import cn.tillusory.sdk.bean.TiRockEnum;
//import cn.tillusory.sdk.bean.TiRotation;
//
///**
// * Created by cxf on 2018/12/5.
// * 视频录制
// */
//
//public class VideoRecordActivity extends AbsActivity implements
//        TXRecordCommon.ITXVideoRecordListener, //视频录制进度回调
//        TiBeautyEffectListener, //设置美颜数值回调
//        TXUGCRecord.VideoCustomProcessListener //视频录制中自定义预处理（添加美颜回调）
//{
//
//    private static final String TAG = "VideoRecordActivity";
//    private static final int MIN_DURATION = 5000;//最小录制时间5s
//    private static final int MAX_DURATION = 15000;//最大录制时间15s
//    //按钮动画相关
//    private VideoRecordBtnView mVideoRecordBtnView;
//    private View mRecordView;
//    private ValueAnimator mRecordBtnAnimator;//录制开始后，录制按钮动画
//    private Drawable mRecordDrawable;
//    private Drawable mUnRecordDrawable;
//
//    /****************************/
//    private boolean mRecordStarted;//是否开始了录制（true 已开始 false 未开始）
//    private boolean mRecordStoped;//是否结束了录制
//    private boolean mRecording;//是否在录制中（（true 录制中 false 暂停中）
//    private ViewGroup mRoot;
//    private TXCloudVideoView mVideoView;//预览控件
//    private RecordProgressView mRecordProgressView;//录制进度条
//    private TextView mTime;//录制时间
//    private DrawableRadioButton2 mBtnFlash;//闪光灯按钮
//    private TXUGCRecord mRecorder;//录制器
//    private TXRecordCommon.TXUGCCustomConfig mCustomConfig;//录制相关配置
//    private boolean mFrontCamera = true;//是否是前置摄像头
//    private String mVideoPath;//视频的保存路径
//    private int mRecordSpeed;//录制速度
//    private View mGroup1;
//    private View mGroup2;
//    private View mGroup3;
//    private View mGroup4;
//    private View mBtnNext;//录制完成，下一步
//    private Dialog mStopRecordDialog;//停止录制的时候的dialog
//    private boolean mIsReachMaxRecordDuration;//是否达到最大录制时间
//    private long mDuration;//录制视频的长度
//    private BeautyViewHolder mBeautyViewHolder;
//    private TiSDKManager mTiSDKManager;//萌颜的各种工具
//    private VideoMusicViewHolder mVideoMusicViewHolder;
//    private MusicBean mMusicBean;//背景音乐
//    private boolean mHasBgm;
//    private boolean mBgmPlayStarted;//是否已经开始播放背景音乐了
//    private Bitmap mFilterBitmap;//基础美颜的滤镜
//    //萌颜美颜效果
//    private int mMeibai = 0;//美白
//    private int mMoPi = 0;//磨皮
//    private int mBaoHe = 0;//饱和
//    private int mFengNen = 0;//粉嫩
//    private int mBigEye = 0;//大眼
//    private int mFace = 0;//瘦脸
//    private String mTieZhi = "";//贴纸
//    private TiFilterEnum mTiFilterEnum = TiFilterEnum.NO_FILTER;//滤镜
//    private TiDistortionEnum mTiDistortionEnum = TiDistortionEnum.NO_DISTORTION;//哈哈镜
//    private TiRockEnum mTiRockEnum = TiRockEnum.NO_ROCK;//抖动
//    private boolean mFristInitBeauty = true;
//    private long mRecordTime;
//    private boolean mIsDynamicVideo;
//
//    @Override
//    protected int getLayoutId() {
//        return R.layout.activity_video_record;
//    }
//
//    @Override
//    protected boolean isStatusBarWhite() {
//        return true;
//    }
//
//    @Override
//    protected void main() {
//        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
//        //是否是动态视频
//        mIsDynamicVideo=getIntent().getBooleanExtra(Constants.DYNAMIC_VIDEO,false);
//        //按钮动画相关
//        mVideoRecordBtnView = (VideoRecordBtnView) findViewById(R.id.record_btn_view);
//        mRecordView = findViewById(R.id.record_view);
//        mUnRecordDrawable = ContextCompat.getDrawable(mContext, R.drawable.bg_btn_record_1);
//        mRecordDrawable = ContextCompat.getDrawable(mContext, R.drawable.bg_btn_record_2);
//        mRecordBtnAnimator = ValueAnimator.ofFloat(100, 0);
//        mRecordBtnAnimator.setDuration(500);
//        mRecordBtnAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
//            @Override
//            public void onAnimationUpdate(ValueAnimator animation) {
//                float v = (float) animation.getAnimatedValue();
//                if (mVideoRecordBtnView != null) {
//                    mVideoRecordBtnView.setRate((int) v);
//                }
//            }
//        });
//        mRecordBtnAnimator.setRepeatCount(-1);
//        mRecordBtnAnimator.setRepeatMode(ValueAnimator.REVERSE);
//
//        /****************************/
//        mRoot = (ViewGroup) findViewById(R.id.root);
//        mGroup1 = findViewById(R.id.group_1);
//        mGroup2 = findViewById(R.id.group_2);
//        mGroup3 = findViewById(R.id.group_3);
//        mGroup4 = findViewById(R.id.group_4);
//        mVideoView = (TXCloudVideoView) findViewById(R.id.video_view);
//        //mVideoView.enableHardwareDecode(true);
//        mTime = findViewById(R.id.time);
//        mRecordProgressView = (RecordProgressView) findViewById(R.id.record_progress_view);
//        mRecordProgressView.setMaxDuration(MAX_DURATION);
//        mRecordProgressView.setMinDuration(MIN_DURATION);
//        mBtnFlash = (DrawableRadioButton2) findViewById(R.id.btn_flash);
//        mBtnNext = findViewById(R.id.btn_next);
//        initCameraRecord();
//    }
//
//    /**
//     * 初始化录制器
//     */
//    private void initCameraRecord() {
//        mRecorder = TXUGCRecord.getInstance(CommonAppContext.sInstance);
//        mRecorder.setHomeOrientation(TXLiveConstants.VIDEO_ANGLE_HOME_DOWN);
//        mRecorder.setRenderRotation(TXLiveConstants.RENDER_ROTATION_PORTRAIT);
//        mRecordSpeed = TXRecordCommon.RECORD_SPEED_NORMAL;
//        mRecorder.setRecordSpeed(mRecordSpeed);
//        mRecorder.setAspectRatio(TXRecordCommon.VIDEO_ASPECT_RATIO_9_16);
//        mCustomConfig = new TXRecordCommon.TXUGCCustomConfig();
//        mCustomConfig.videoResolution = TXRecordCommon.VIDEO_RESOLUTION_1080_1920;
//        mCustomConfig.minDuration = MIN_DURATION;
//        mCustomConfig.maxDuration = MAX_DURATION;
//        mCustomConfig.videoBitrate = 6500;
//        mCustomConfig.videoGop = 3;
//        mCustomConfig.videoFps = 20;
//        mCustomConfig.isFront = mFrontCamera;
//        mRecorder.setVideoRecordListener(this);
//    }
//
//
//    /**
//     * 初始化萌颜
//     */
//    private void initBeauty() {
//        try {
//            mTiSDKManager = new TiSDKManagerBuilder().build();
//            mTiSDKManager.setBeautyEnable(true);
//            mTiSDKManager.setFaceTrimEnable(true);
//            if (mFristInitBeauty) {
//                mFristInitBeauty = false;
//                ConfigBean configBean = CommonAppConfig.getInstance().getConfig();
//                if (configBean != null) {
//                    mMeibai = configBean.getBeautyMeiBai();//美白
//                    mMoPi = configBean.getBeautyMoPi();//磨皮
//                    mBaoHe = configBean.getBeautyBaoHe();//饱和
//                    mFengNen = configBean.getBeautyFenNen();//粉嫩
//                    mBigEye = configBean.getBeautyBigEye();//大眼
//                    mFace = configBean.getBeautyFace();//瘦脸
//                }
//            }
//            mTiSDKManager.setSkinWhitening(mMeibai);//美白
//            mTiSDKManager.setSkinBlemishRemoval(mMoPi);//磨皮
//            mTiSDKManager.setSkinSaturation(mBaoHe);//饱和
//            mTiSDKManager.setSkinTenderness(mFengNen);//粉嫩
//            mTiSDKManager.setEyeMagnifying(mBigEye);//大眼
//            mTiSDKManager.setChinSlimming(mFace);//瘦脸
//            mTiSDKManager.setSticker(mTieZhi);//贴纸
//            mTiSDKManager.setFilterEnum(mTiFilterEnum);//滤镜
//            mTiSDKManager.setDistortionEnum(mTiDistortionEnum);//哈哈镜
//        } catch (Exception e) {
//            ToastUtil.show(R.string.beauty_init_error);
//        }
//    }
//
//    /**
//     * 录制回调
//     */
//    @Override
//    public void onRecordEvent(int event, Bundle bundle) {
//        if (event == TXRecordCommon.EVT_ID_PAUSE) {
//            if (mRecordProgressView != null) {
//                mRecordProgressView.clipComplete();
//            }
//        } else if (event == TXRecordCommon.EVT_CAMERA_CANNOT_USE) {
//            ToastUtil.show(R.string.video_record_camera_failed);
//        } else if (event == TXRecordCommon.EVT_MIC_CANNOT_USE) {
//            ToastUtil.show(R.string.video_record_audio_failed);
//        }
//    }
//
//    /**
//     * 录制回调 录制进度
//     */
//    @Override
//    public void onRecordProgress(long milliSecond) {
//        if (mRecordProgressView != null) {
//            mRecordProgressView.setProgress((int) milliSecond);
//        }
//        if (mTime != null) {
//            mTime.setText(String.format("%.2f", milliSecond / 1000f) + "s");
//        }
//        mRecordTime = milliSecond;
//        if (milliSecond >= MIN_DURATION) {
//            if (mBtnNext != null && mBtnNext.getVisibility() != View.VISIBLE) {
//                mBtnNext.setVisibility(View.VISIBLE);
//            }
//        }
//        if (milliSecond >= MAX_DURATION) {
//            if (!mIsReachMaxRecordDuration) {
//                mIsReachMaxRecordDuration = true;
//                if (mRecordBtnAnimator != null) {
//                    mRecordBtnAnimator.cancel();
//                }
//                showProccessDialog();
//            }
//        }
//    }
//
//    /**
//     * 录制回调
//     */
//    @Override
//    public void onRecordComplete(TXRecordCommon.TXRecordResult result) {
//        hideProccessDialog();
//        mRecordStarted = false;
//        mRecordStoped = true;
//        if (mRecorder != null) {
//            mRecorder.toggleTorch(false);
//            mRecorder.stopBGM();
//            mDuration = mRecorder.getPartsManager().getDuration();
//        }
//        if (result.retCode < 0) {
//            release();
//            ToastUtil.show(R.string.video_record_failed);
//        } else {
//            VideoEditActivity.forward(mContext, mDuration, mVideoPath, true, mHasBgm,mIsDynamicVideo);
//        }
//        finish();
//    }
//
//
//    /**
//     * 录制中美颜处理回调
//     */
//    @Override
//    public int onTextureCustomProcess(int i, int i1, int i2) {
//        if (mTiSDKManager != null) {
//            return mTiSDKManager.renderTexture2D(i, i1, i2, TiRotation.CLOCKWISE_ROTATION_0, false);
//        }
//        return 0;
//    }
//
//    /**
//     * 录制中美颜处理回调
//     */
//    @Override
//    public void onDetectFacePoints(float[] floats) {
//
//    }
//
//    /**
//     * 录制中美颜处理回调
//     */
//    @Override
//    public void onTextureDestroyed() {
//
//    }
//
//    public void recordClick(View v) {
//        if (mRecordStoped || !canClick()) {
//            return;
//        }
//        int i = v.getId();
//        if (i == R.id.btn_start_record) {
//            clickRecord();
//
//        } else if (i == R.id.btn_camera) {
//            clickCamera();
//
//        } else if (i == R.id.btn_flash) {
//            clickFlash();
//
//        } else if (i == R.id.btn_beauty) {
//            clickBeauty();
//
//        } else if (i == R.id.btn_music) {
//            clickMusic();
//
//        } else if (i == R.id.btn_speed_1) {
//            changeRecordSpeed(TXRecordCommon.RECORD_SPEED_SLOWEST);
//
//        } else if (i == R.id.btn_speed_2) {
//            changeRecordSpeed(TXRecordCommon.RECORD_SPEED_SLOW);
//
//        } else if (i == R.id.btn_speed_3) {
//            changeRecordSpeed(TXRecordCommon.RECORD_SPEED_NORMAL);
//
//        } else if (i == R.id.btn_speed_4) {
//            changeRecordSpeed(TXRecordCommon.RECORD_SPEED_FAST);
//
//        } else if (i == R.id.btn_speed_5) {
//            changeRecordSpeed(TXRecordCommon.RECORD_SPEED_FASTEST);
//
//        } else if (i == R.id.btn_upload) {
//            clickUpload();
//
//        } else if (i == R.id.btn_delete) {
//            clickDelete();
//
//        } else if (i == R.id.btn_next) {
//            clickNext();
//
//        }
//    }
//
//    /**
//     * 点击摄像头
//     */
//    private void clickCamera() {
//        if (mRecorder != null) {
//            if (mBtnFlash != null && mBtnFlash.isChecked()) {
//                mBtnFlash.doToggle();
//                mRecorder.toggleTorch(mBtnFlash.isChecked());
//            }
//            mFrontCamera = !mFrontCamera;
//            mRecorder.switchCamera(mFrontCamera);
//        }
//    }
//
//    /**
//     * 点击闪光灯
//     */
//    private void clickFlash() {
//        if (mFrontCamera) {
//            ToastUtil.show(R.string.live_open_flash);
//            return;
//        }
//        if (mBtnFlash != null) {
//            mBtnFlash.doToggle();
//            if (mRecorder != null) {
//                mRecorder.toggleTorch(mBtnFlash.isChecked());
//            }
//        }
//    }
//
//    /**
//     * 点击美颜
//     */
//    private void clickBeauty() {
//        if (mBeautyViewHolder == null) {
//            if (CommonAppConfig.getInstance().isMhBeautyEnable()) {
//                mBeautyViewHolder = new TiBeautyViewHolder(mContext, mRoot);
//            } else {
//                mBeautyViewHolder = new DefaultBeautyViewHolder(mContext, mRoot);
//            }
//            mBeautyViewHolder.setVisibleListener(new DefaultBeautyViewHolder.VisibleListener() {
//                @Override
//                public void onVisibleChanged(boolean visible) {
//                    if (mGroup1 != null) {
//                        if (visible) {
//                            if (mGroup1.getVisibility() == View.VISIBLE) {
//                                mGroup1.setVisibility(View.INVISIBLE);
//                            }
//                        } else {
//                            if (mGroup1.getVisibility() != View.VISIBLE) {
//                                mGroup1.setVisibility(View.VISIBLE);
//                            }
//                        }
//                    }
//                }
//            });
//            if (CommonAppConfig.getInstance().isMhBeautyEnable()) {
//                mBeautyViewHolder.setEffectListener(this);//萌颜
//            } else {
//                mBeautyViewHolder.setEffectListener(mBaseBeautyEffectListener);//基础美颜
//            }
//        }
//        mBeautyViewHolder.show();
//    }
//
//    //基础美颜的回调 （非萌颜）
//    private DefaultBeautyEffectListener mBaseBeautyEffectListener = new DefaultBeautyEffectListener() {
//        @Override
//        public void onFilterChanged(FilterBean filterBean) {
//            if (mFilterBitmap != null) {
//                mFilterBitmap.recycle();
//            }
//            if (mRecorder != null) {
//                int filterSrc = filterBean.getFilterSrc();
//                if (filterSrc != 0) {
//                    Bitmap bitmap = BitmapUtil.getInstance().decodeBitmap(filterSrc);
//                    if (bitmap != null) {
//                        mFilterBitmap = bitmap;
//                        mRecorder.setFilter(bitmap);
//                    } else {
//                        mRecorder.setFilter(null);
//                    }
//                } else {
//                    mRecorder.setFilter(null);
//                }
//            }
//        }
//
//        @Override
//        public void onMeiBaiChanged(int progress) {
//            if (mRecorder != null) {
//                int v = progress / 10;
//                if (mMeibai != v) {
//                    mMeibai = v;
//                    mRecorder.setBeautyDepth(0, mMoPi, mMeibai, mFengNen);
//                }
//            }
//
//        }
//
//        @Override
//        public void onMoPiChanged(int progress) {
//            if (mRecorder != null) {
//                int v = progress / 10;
//                if (mMoPi != v) {
//                    mMoPi = v;
//                    mRecorder.setBeautyDepth(0, mMoPi, mMeibai, mFengNen);
//                }
//            }
//        }
//
//        @Override
//        public void onHongRunChanged(int progress) {
//            if (mRecorder != null) {
//                int v = progress / 10;
//                if (mFengNen != v) {
//                    mFengNen = v;
//                    mRecorder.setBeautyDepth(0, mMoPi, mMeibai, mFengNen);
//                }
//            }
//        }
//    };
//
//    /**
//     * 点击音乐
//     */
//    private void clickMusic() {
//        if (mVideoMusicViewHolder == null) {
//            mVideoMusicViewHolder = new VideoMusicViewHolder(mContext, mRoot);
//            mVideoMusicViewHolder.setActionListener(new VideoMusicViewHolder.ActionListener() {
//                @Override
//                public void onChooseMusic(MusicBean musicBean) {
//                    mMusicBean = musicBean;
//                    mBgmPlayStarted = false;
//                }
//            });
//            mVideoMusicViewHolder.addToParent();
//            mVideoMusicViewHolder.subscribeActivityLifeCycle();
//        }
//        mVideoMusicViewHolder.show();
//    }
//
//    /**
//     * 点击上传，选择本地视频
//     */
//    private void clickUpload() {
//        Intent intent = new Intent(mContext, VideoChooseActivity.class);
//        intent.putExtra(Constants.VIDEO_DURATION, MAX_DURATION);
//        startActivityForResult(intent, 0);
//    }
//
//    /**
//     * 选择本地视频的回调
//     */
//    @Override
//    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//        if (requestCode == 0 && resultCode == RESULT_OK) {
//            mVideoPath = data.getStringExtra(Constants.VIDEO_PATH);
//            mDuration = data.getLongExtra(Constants.VIDEO_DURATION, 0);
//            VideoEditActivity.forward(mContext, mDuration, mVideoPath, false, false,mIsDynamicVideo);
//            finish();
//        }
//    }
//
//
//    /**
//     * 开始预览
//     */
//    private void startCameraPreview() {
//        if (mRecorder != null && mCustomConfig != null && mVideoView != null) {
//            mRecorder.startCameraCustomPreview(mCustomConfig, mVideoView);
//            if (!mFrontCamera) {
//                mRecorder.switchCamera(false);
//            }
//            if (CommonAppConfig.getInstance().isMhBeautyEnable()) {
//                initBeauty();
//                mRecorder.setVideoProcessListener(this);
//            }
//        }
//    }
//
//    /**
//     * 停止预览
//     */
//    private void stopCameraPreview() {
//        if (mRecorder != null) {
//            if (mRecording) {
//                pauseRecord();
//            }
//            mRecorder.stopCameraPreview();
//            mRecorder.setVideoProcessListener(null);
//            if (mTiSDKManager != null) {
//                mTiSDKManager.destroy();
//            }
//            mTiSDKManager = null;
//        }
//    }
//
//    /**
//     * 点击录制
//     */
//    private void clickRecord() {
//        if (mRecordStarted) {
//            if (mRecording) {
//                pauseRecord();
//            } else {
//                resumeRecord();
//            }
//        } else {
//            startRecord();
//        }
//    }
//
//    /**
//     * 开始录制
//     */
//    private void startRecord() {
//        if (mRecorder != null) {
//            mVideoPath = StringUtil.generateVideoOutputPath();//视频保存的路径
//            int result = mRecorder.startRecord(mVideoPath, CommonAppConfig.VIDEO_RECORD_TEMP_PATH, null);//为空表示不需要生成视频封面
//            if (result != TXRecordCommon.START_RECORD_OK) {
//                if (result == TXRecordCommon.START_RECORD_ERR_NOT_INIT) {
//                    ToastUtil.show(R.string.video_record_tip_1);
//                } else if (result == TXRecordCommon.START_RECORD_ERR_IS_IN_RECORDING) {
//                    ToastUtil.show(R.string.video_record_tip_2);
//                } else if (result == TXRecordCommon.START_RECORD_ERR_VIDEO_PATH_IS_EMPTY) {
//                    ToastUtil.show(R.string.video_record_tip_3);
//                } else if (result == TXRecordCommon.START_RECORD_ERR_API_IS_LOWER_THAN_18) {
//                    ToastUtil.show(R.string.video_record_tip_4);
//                } else if (result == TXRecordCommon.START_RECORD_ERR_LICENCE_VERIFICATION_FAILED) {
//                    ToastUtil.show(R.string.video_record_tip_5);
//                }
//                return;
//            }
//        }
//        mRecordStarted = true;
//        mRecording = true;
//        resumeBgm();
//        startRecordBtnAnim();
//        if (mGroup2 != null && mGroup2.getVisibility() == View.VISIBLE) {
//            mGroup2.setVisibility(View.INVISIBLE);
//        }
//    }
//
//
//    /**
//     * 暂停录制
//     */
//    private void pauseRecord() {
//        if (mRecorder == null) {
//            return;
//        }
//        pauseBgm();
//        mRecorder.pauseRecord();
//        mRecording = false;
//        stopRecordBtnAnim();
//        if (mGroup2 != null && mGroup2.getVisibility() != View.VISIBLE) {
//            mGroup2.setVisibility(View.VISIBLE);
//        }
//        TXUGCPartsManager partsManager = mRecorder.getPartsManager();
//        if (partsManager != null) {
//            List<String> partList = partsManager.getPartsPathList();
//            if (partList != null && partList.size() > 0) {
//                if (mGroup3 != null && mGroup3.getVisibility() == View.VISIBLE) {
//                    mGroup3.setVisibility(View.INVISIBLE);
//                }
//                if (mGroup4 != null && mGroup4.getVisibility() != View.VISIBLE) {
//                    mGroup4.setVisibility(View.VISIBLE);
//                }
//            } else {
//                if (mGroup3 != null && mGroup3.getVisibility() != View.VISIBLE) {
//                    mGroup3.setVisibility(View.VISIBLE);
//                }
//                if (mGroup4 != null && mGroup4.getVisibility() == View.VISIBLE) {
//                    mGroup4.setVisibility(View.INVISIBLE);
//                }
//            }
//        }
//    }
//
//    /**
//     * 恢复录制
//     */
//    private void resumeRecord() {
//        if (mRecorder != null) {
//            int startResult = mRecorder.resumeRecord();
//            if (startResult != TXRecordCommon.START_RECORD_OK) {
//                ToastUtil.show(WordUtil.getString(R.string.video_record_failed));
//                return;
//            }
//        }
//        mRecording = true;
//        resumeBgm();
//        startRecordBtnAnim();
//        if (mGroup2 != null && mGroup2.getVisibility() == View.VISIBLE) {
//            mGroup2.setVisibility(View.INVISIBLE);
//        }
//    }
//
//    /**
//     * 暂停背景音乐
//     */
//    private void pauseBgm() {
//        if (mRecorder != null) {
//            mRecorder.pauseBGM();
//        }
//    }
//
//    /**
//     * 恢复背景音乐
//     */
//    private void resumeBgm() {
//        if (mRecorder == null) {
//            return;
//        }
//        if (!mBgmPlayStarted) {
//            if (mMusicBean == null) {
//                return;
//            }
//            int bgmDuration = mRecorder.setBGM(mMusicBean.getLocalPath());
//            mRecorder.playBGMFromTime(0, bgmDuration);
//            mRecorder.setBGMVolume(1);//背景音为1最大
//            mRecorder.setMicVolume(0);//原声音为0
//            mBgmPlayStarted = true;
//            mHasBgm = true;
//        } else {
//            mRecorder.resumeBGM();
//        }
//    }
//
//    /**
//     * 按钮录制动画开始
//     */
//    private void startRecordBtnAnim() {
//        if (mRecordView != null) {
//            mRecordView.setBackground(mRecordDrawable);
//        }
//        if (mRecordBtnAnimator != null) {
//            mRecordBtnAnimator.start();
//        }
//    }
//
//    /**
//     * 按钮录制动画停止
//     */
//    private void stopRecordBtnAnim() {
//        if (mRecordView != null) {
//            mRecordView.setBackground(mUnRecordDrawable);
//        }
//        if (mRecordBtnAnimator != null) {
//            mRecordBtnAnimator.cancel();
//        }
//        if (mVideoRecordBtnView != null) {
//            mVideoRecordBtnView.reset();
//        }
//    }
//
//    /**
//     * 调整录制速度
//     */
//    private void changeRecordSpeed(int speed) {
//        if (mRecordSpeed == speed) {
//            return;
//        }
//        mRecordSpeed = speed;
//        if (mRecorder != null) {
//            mRecorder.setRecordSpeed(speed);
//        }
//    }
//
//    /**
//     * 删除录制分段
//     */
//    private void clickDelete() {
//        DialogUitl.showSimpleDialog(mContext, WordUtil.getString(R.string.video_record_delete_last), new DialogUitl.SimpleCallback() {
//            @Override
//            public void onConfirmClick(Dialog dialog, String content) {
//                doClickDelete();
//            }
//        });
//    }
//
//    /**
//     * 删除录制分段
//     */
//    private void doClickDelete() {
//        if (!mRecordStarted || mRecording || mRecorder == null) {
//            return;
//        }
//        TXUGCPartsManager partsManager = mRecorder.getPartsManager();
//        if (partsManager == null) {
//            return;
//        }
//        List<String> partList = partsManager.getPartsPathList();
//        if (partList == null || partList.size() == 0) {
//            return;
//        }
//        partsManager.deleteLastPart();
//        int time = partsManager.getDuration();
//        if (mTime != null) {
//            mTime.setText(String.format("%.2f", time / 1000f) + "s");
//        }
//        mRecordTime = time;
//        if (time < MIN_DURATION && mBtnNext != null && mBtnNext.getVisibility() == View.VISIBLE) {
//            mBtnNext.setVisibility(View.INVISIBLE);
//        }
//        if (mRecordProgressView != null) {
//            mRecordProgressView.deleteLast();
//        }
//        partList = partsManager.getPartsPathList();
//        if (partList != null && partList.size() == 0) {
//            if (mGroup2 != null && mGroup2.getVisibility() != View.VISIBLE) {
//                mGroup2.setVisibility(View.VISIBLE);
//            }
//            if (mGroup3 != null && mGroup3.getVisibility() != View.VISIBLE) {
//                mGroup3.setVisibility(View.VISIBLE);
//            }
//            if (mGroup4 != null && mGroup4.getVisibility() == View.VISIBLE) {
//                mGroup4.setVisibility(View.INVISIBLE);
//            }
//        }
//    }
//
//    /**
//     * 结束录制，会触发 onRecordComplete
//     */
//    public void clickNext() {
//        stopRecordBtnAnim();
//        if (mRecorder != null) {
//            mRecorder.stopBGM();
//            mRecorder.stopRecord();
//            showProccessDialog();
//        }
//    }
//
//
//    /**
//     * 录制结束时候显示处理中的弹窗
//     */
//    private void showProccessDialog() {
//        if (mStopRecordDialog == null) {
//            mStopRecordDialog = DialogUitl.loadingDialog(mContext, WordUtil.getString(R.string.video_processing));
//            mStopRecordDialog.show();
//        }
//    }
//
//    /**
//     * 隐藏处理中的弹窗
//     */
//    private void hideProccessDialog() {
//        if (mStopRecordDialog != null) {
//            mStopRecordDialog.dismiss();
//        }
//        mStopRecordDialog = null;
//    }
//
//
//    @Override
//    public void onBackPressed() {
//        if (!canClick()) {
//            return;
//        }
//        if (mBeautyViewHolder != null && mBeautyViewHolder.isShowed()) {
//            mBeautyViewHolder.hide();
//            return;
//        }
//        if (mVideoMusicViewHolder != null && mVideoMusicViewHolder.isShowed()) {
//            mVideoMusicViewHolder.hide();
//            return;
//        }
//        List<Integer> list = new ArrayList<>();
//        if (mRecordTime > 0) {
//            list.add(R.string.video_re_record);
//        }
//        list.add(R.string.video_exit);
//        DialogUitl.showStringArrayDialog(mContext, list.toArray(new Integer[list.size()]), new DialogUitl.StringArrayDialogCallback() {
//            @Override
//            public void onItemClick(String text, int tag) {
//                if (tag == R.string.video_re_record) {
//                    reRecord();
//                } else if (tag == R.string.video_exit) {
//                    exit();
//                }
//            }
//        });
//    }
//
//    /**
//     * 重新录制
//     */
//    private void reRecord() {
//        if (mRecorder == null) {
//            return;
//        }
//        mRecorder.pauseBGM();
//        mMusicBean = null;
//        mHasBgm = false;
//        mBgmPlayStarted = false;
//        mRecorder.pauseRecord();
//        mRecording = false;
//        stopRecordBtnAnim();
//        if (mGroup2 != null && mGroup2.getVisibility() != View.VISIBLE) {
//            mGroup2.setVisibility(View.VISIBLE);
//        }
//        TXUGCPartsManager partsManager = mRecorder.getPartsManager();
//        if (partsManager != null) {
//            partsManager.deleteAllParts();
//        }
//        mRecorder.onDeleteAllParts();
//        if (mTime != null) {
//            mTime.setText("0.00s");
//        }
//        mRecordTime = 0;
//        if (mBtnNext != null && mBtnNext.getVisibility() == View.VISIBLE) {
//            mBtnNext.setVisibility(View.INVISIBLE);
//        }
//        if (mRecordProgressView != null) {
//            mRecordProgressView.deleteAll();
//        }
//        if (mGroup3 != null && mGroup3.getVisibility() != View.VISIBLE) {
//            mGroup3.setVisibility(View.VISIBLE);
//        }
//        if (mGroup4 != null && mGroup4.getVisibility() == View.VISIBLE) {
//            mGroup4.setVisibility(View.INVISIBLE);
//        }
//
//    }
//
//    /**
//     * 退出
//     */
//    private void exit() {
//        release();
//        super.onBackPressed();
//    }
//
//
//    @Override
//    protected void onStart() {
//        super.onStart();
//        startCameraPreview();
//    }
//
//    @Override
//    protected void onStop() {
//        super.onStop();
//        stopCameraPreview();
//        if (mRecorder != null && mBtnFlash != null && mBtnFlash.isChecked()) {
//            mBtnFlash.doToggle();
//            mRecorder.toggleTorch(mBtnFlash.isChecked());
//        }
//    }
//
//    @Override
//    protected void onDestroy() {
//        release();
//        super.onDestroy();
//        L.e(TAG, "-------->onDestroy");
//    }
//
//
//    private void release() {
//        if (mStopRecordDialog != null && mStopRecordDialog.isShowing()) {
//            mStopRecordDialog.dismiss();
//        }
//        if (mBeautyViewHolder != null) {
//            mBeautyViewHolder.release();
//        }
//        if (mVideoMusicViewHolder != null) {
//            mVideoMusicViewHolder.release();
//        }
//        if (mRecordProgressView != null) {
//            mRecordProgressView.release();
//        }
//        if (mRecordBtnAnimator != null) {
//            mRecordBtnAnimator.cancel();
//        }
//        if (mRecorder != null) {
//            mRecorder.toggleTorch(false);
//            mRecorder.stopBGM();
//            if (mRecordStarted) {
//                mRecorder.stopRecord();
//            }
//            mRecorder.stopCameraPreview();
//            mRecorder.setVideoProcessListener(null);
//            mRecorder.setVideoRecordListener(null);
//            TXUGCPartsManager getPartsManager = mRecorder.getPartsManager();
//            if (getPartsManager != null) {
//                getPartsManager.deleteAllParts();
//            }
//            mRecorder.release();
//        }
//        if (mTiSDKManager != null) {
//            mTiSDKManager.destroy();
//        }
//        mStopRecordDialog = null;
//        mBeautyViewHolder = null;
//        mVideoMusicViewHolder = null;
//        mRecordProgressView = null;
//        mRecordBtnAnimator = null;
//        mRecorder = null;
//        mTiSDKManager = null;
//
//    }
//
//
//    /****************美颜回调 start********************/
//    /**
//     * 设置滤镜回调
//     */
//    @Override
//    public void onFilterChanged(TiFilterEnum tiFilterEnum) {
//        if (mTiSDKManager != null) {
//            mTiFilterEnum = tiFilterEnum;
//            mTiSDKManager.setFilterEnum(tiFilterEnum);
//        }
//    }
//
//    /**
//     * 设置美白回调
//     */
//    @Override
//    public void onMeiBaiChanged(int progress) {
//        if (mTiSDKManager != null) {
//            mMeibai = progress;
//            mTiSDKManager.setSkinWhitening(progress);
//        }
//    }
//
//    /**
//     * 设置磨皮回调
//     */
//    @Override
//    public void onMoPiChanged(int progress) {
//        if (mTiSDKManager != null) {
//            mMoPi = progress;
//            mTiSDKManager.setSkinBlemishRemoval(progress);
//        }
//    }
//
//    /**
//     * 设置饱和回调
//     */
//    @Override
//    public void onBaoHeChanged(int progress) {
//        if (mTiSDKManager != null) {
//            mBaoHe = progress;
//            mTiSDKManager.setSkinSaturation(progress);
//        }
//    }
//
//    /**
//     * 设置粉嫩回调
//     */
//    @Override
//    public void onFengNenChanged(int progress) {
//        if (mTiSDKManager != null) {
//            mFengNen = progress;
//            mTiSDKManager.setSkinTenderness(progress);
//        }
//    }
//
//    /**
//     * 设置大眼回调
//     */
//    @Override
//    public void onBigEyeChanged(int progress) {
//        if (mTiSDKManager != null) {
//            mBigEye = progress;
//            mTiSDKManager.setEyeMagnifying(progress);
//        }
//    }
//
//    /**
//     * 设置瘦脸回调
//     */
//    @Override
//    public void onFaceChanged(int progress) {
//        if (mTiSDKManager != null) {
//            mFace = progress;
//            mTiSDKManager.setChinSlimming(progress);
//        }
//    }
//
//    /**
//     * 设置贴纸回调
//     */
//    @Override
//    public void onTieZhiChanged(String tieZhiName) {
//        if (mTiSDKManager != null) {
//            mTieZhi = tieZhiName;
//            mTiSDKManager.setSticker(tieZhiName);
//        }
//    }
//
//    /**
//     * 设置哈哈镜回调
//     */
//    @Override
//    public void onHaHaChanged(TiDistortionEnum tiDistortionEnum) {
//        if (mTiSDKManager != null) {
//            mTiDistortionEnum = tiDistortionEnum;
//            mTiSDKManager.setDistortionEnum(tiDistortionEnum);
//        }
//    }
//
//    /**
//     * 设置抖动回调
//     */
//    @Override
//    public void onRockChanged(TiRockEnum tiRockEnum) {
//        if (mTiSDKManager != null) {
//            mTiRockEnum = tiRockEnum;
//            mTiSDKManager.setRockEnum(tiRockEnum);
//        }
//    }
//
//
//    /****************美颜回调 end********************/
//
//
//}
